//
// Created by Alex on 2022/3/27.
//

#ifndef WORDLIST_CORE_H
#define WORDLIST_CORE_H

//#ifdef _WIN32
//
//#ifdef F_PIC
//#define LIB_FUNC __declspec(dllexport)
//#else  // NO F_PIC
//#define LIB_FUNC __declspec(dllimport)
//#endif // F_PIC
//
//#elif   // NO _WIN32
//#error "This program can only be compiled on Win32 platforms."
//#define LIB_FUNC
//#endif  // _WIN32

#include "Solution.h"

//#ifdef __cplusplus
//extern "C" {
//#endif

    int gen_chains_all(char* words[], int len, char* result[] ) noexcept(false);
    int gen_chain_word(char* words[], int len, char* result[], char head, char tail, bool allow_circ) noexcept(false);
    int gen_chain_word_unique(char* words[], int len, char* result[]) noexcept(false);
    int gen_chain_char(char* words[], int len, char* result[], char head, char tail, bool enable_loop) noexcept(false);

    int Add(int x, int y);

//#ifdef __cplusplus
//}
//#endif

    const int CORE_ERROR_ILLEGAL_CIRCLE = -1;
const int CORE_ERROR_ILLEGAL_HEAD = -2;
const int CORE_ERROR_ILLEGAL_TAIL = -3;
const int CORE_ERROR_ILLEGAL_LEN = -4;

#endif //WORDLIST_CORE_H
